const http = require('http')
const fs = require('fs')
const path = require('path')
http.createServer(function(request, response){
  console.log('request.url:', request.url)
  if(request.url==='/') {
    const html = fs.readFileSync(path.join(__dirname,'test.html'),'utf8')
    response.writeHead(200,{
      'Content-Type': 'text/html'
    })
    response.end(html)
  }

  if(request.url==='/script.js') {
    const etag = request.headers['if-none-match']//注意是小写，headers是个对象
    if (etag==='777') {
      response.writeHead(304,{
        'Content-Type': 'text/javascript',
        // 'Cache-Control': 'max-age=2000000,no-cache',
        'Cache-Control': 'max-age=20000000',
        'Last-Modified':'123',
        'Etag':'777'
      })
      response.end('console.log("新的内容")')//不需要传body里的内容
    } else {
      response.writeHead(200,{
        'Content-Type': 'text/javascript',//这样设置，浏览器就会把response.end()发送的内容当做js代码处理。
        // 'Cache-Control': 'max-age=2000000,no-cache',
        'Cache-Control': 'max-age=2000000',//设置了Cache-Control,浏览器可以缓存，但又使用了no-cache,下一次发送的请求还是要发送到服务器进行验证的，不然不能直接使用缓存。
        // 'Cache-Control': 'max-age=2000000,no-store',
        'Last-Modified':'123',
        'Etag':'777'
      })
      response.end(fs.readFileSync(path.join(__dirname,'x2.js'),'utf8'))
    }
  }
}).listen(8888) 